/******************************************************************************* 
  Copyright (C), 1988-2020, zeno Tech. Co., Ltd.
  Description:  AENC模块内部头文件
  Function List:
            
*******************************************************************************/
              
#ifndef AUDIO_HI_AENC_H
#define AUDIO_HI_AENC_H

/*=============================================================================
                                 Includes                                  
==============================================================================*/

/*=============================================================================
                               Macro Definition
==============================================================================*/

/*=============================================================================
                        Local Structures and Typedef 
==============================================================================*/

/*=============================================================================
                             extern  Variables                                  
==============================================================================*/

/*=============================================================================
                             Function Definition                                  
==============================================================================*/ 

/*******************************************************************************
  Function:     AUDIOENC_Create
  Description:  创建AENC通道
  Input:        - aencChn: AENC channel 编号
                - pAencAttr: aenc参数
  Output:       无
  Return:       0: 操作成功
                -1: 操作失败
  Others:       无
*******************************************************************************/
int AUDIOENC_Create(AENC_CHN aencChn, AENC_CHN_ATTR_S *pAencAttr);

/*******************************************************************************
  Function:     AUDIOENC_Destroy
  Description:  注销AENC通道
  Input:        - aencChn: AENC channel 编号
  Output:       无
  Return:       0: 操作成功
                -1: 操作失败
  Others:       无
*******************************************************************************/
int AUDIOENC_Destroy(AENC_CHN aencChn);

/*******************************************************************************
  Function:     AUDIOENC_BindAi
  Description:  aenc通道绑定ai通道
  Input:        - aeChn: aenc编号
                - aiDev: ai设备号
                - aiChn: ai通道号             
  Output:       无
  Return:       0: 操作成功
                -1: 操作失败
  Others:       无
*******************************************************************************/
int AUDIOENC_BindAi(AENC_CHN aeChn, AUDIO_DEV aiDev, AI_CHN aiChn);

/*******************************************************************************
  Function:     AUDIOENC_UnbindAi
  Description:  aenc通道解除绑定ai通道
  Input:        - aeChn: aenc编号
                - aiDev: ai设备号
                - aiChn: ai通道号                  
  Output:       无
  Return:       0: 操作成功
                -1: 操作失败
  Others:       无
*******************************************************************************/
int AUDIOENC_UnbindAi(AENC_CHN aeChn, AUDIO_DEV aiDev, AI_CHN aiChn);

/*******************************************************************************
  Function:     AUDIOENC_UserBindAi
  Description:  aenc通道绑定ai通道线程
  Input:        - parg:                  
  Output:       无
  Return:       NULL
  Others:       无
*******************************************************************************/
void *AUDIOENC_UserBindAi(void *parg);


#endif  /* AUDIO_HI_AENC_H */
